package com.act.web;


import java.util.Map;

import javax.annotation.Resource;
import org.apache.log4j.Logger;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.act.domain.ContractManagement;
import com.act.dto.PagerDTO;
import com.act.dto.Response;
import com.act.service.api.IContractManagementService;
import com.act.util.LoggerUtil;
import com.act.vo.PagerVo;

@RestController
@RequestMapping("/contract")
public class ContractManagementController {

		@Resource
		private IContractManagementService contractManagementService;
		
		private final Logger LOGGER = Logger.getLogger(ContractManagementController.class);
	    
		@RequestMapping(value = "/add", method = RequestMethod.POST)
		@ResponseBody
		public Response add(ContractManagement contractManagement) {
			try {
				contractManagementService.add(contractManagement);
				return Response.success();
			} catch (Exception e) {
				LoggerUtil.error(LOGGER, e);
			}
			return Response.fail();
		}
		
	    @RequestMapping(value = "/update",method = RequestMethod.POST)
	    @ResponseBody
	    public Response update(ContractManagement contractManagement) {
	    	 try {
	    		 contractManagementService.update(contractManagement);
	             return Response.success();
	         } catch (Exception e) {
				 LoggerUtil.error(LOGGER, e);
	         }
	    	 return Response.fail();
	    }	    
	    
	    @RequestMapping(value = "/delete/{id}",method = RequestMethod.GET)
	    @ResponseBody
	    public Response delete(@PathVariable int id) {
	    	 try {
	    		 contractManagementService.delete(id);
	             return Response.success();
	         } catch (Exception e) {
				 LoggerUtil.error(LOGGER, e);
	         }
	    	 return Response.fail();
	    }
	    
	    @RequestMapping(value = "/get/{id}",method = RequestMethod.GET)
	    @ResponseBody
	    public Response getById(@PathVariable int id) {
	    	 try {
	    		 ContractManagement contractManagement = contractManagementService.getById(id);
	             return Response.success(contractManagement);
	         } catch (Exception e) {
	        	 LoggerUtil.error(LOGGER, e);
	         }
	    	 return Response.fail();
	    }	    

	    @RequestMapping(value = "/get",method = RequestMethod.POST)
	    @ResponseBody
	    public Response getAll(@RequestBody PagerDTO pagerDTO) {
	    	 try {
	    		 PagerVo<Map> pagerVo = contractManagementService.getAll(pagerDTO);
	             return Response.success(pagerVo);
	         } catch (Exception e) {
	        	 LoggerUtil.error(LOGGER, e);
	         }
	    	 return Response.fail();
	    }
}
